text view: Expose cursor blink control
authorMatthias Clasen <mclasen@redhat.com>
Mon, 18 Jan 2016 19:54:25 +0000 (14:54 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 18 Jan 2016 21:27:43 +0000 (16:27 -0500)
Derived classes like GtkSourceView with their own ::key-event
handler need access to this, in order to make their keynav
as nice as the builtin one, wrt to caret visibility.

https://bugzilla.gnome.org/show_bug.cgi?id=760748

docs/reference/gtk/gtk3-sections.txt
gtk/gtktextview.c
gtk/gtktextview.h

index 51e8bd01588e2aa9696766cfc3571de1a1f858df..fe439c97f1d091a04fa77a3854f914c594bf5f69 100644 (file)
@@ -3950,6 +3950,7 @@ gtk_text_view_set_editable
 gtk_text_view_get_editable
 gtk_text_view_set_cursor_visible
 gtk_text_view_get_cursor_visible
+gtk_text_view_reset_cursor_blink
 gtk_text_view_set_overwrite
 gtk_text_view_get_overwrite
 gtk_text_view_set_pixels_above_lines
index 8bae967a14baa5991604c2915f53be3d59f05f29..659056c3d5e4a4ffc901212bc2e4001acfb4f569 100644 (file)
@@ -3538,6 +3538,28 @@ gtk_text_view_get_cursor_visible (GtkTextView *text_view)
   return text_view->priv->cursor_visible;
 }
 
+/**
+ * gtk_text_view_reset_cursor_blink:
+ * @text_view: a #GtkTextView
+ *
+ * Ensures that the cursor is shown (i.e. not in an 'off' blink
+ * interval) and resets the time that it will stay blinking (or
+ * visible, in case blinking is disabled).
+ *
+ * This function should be called in response to user input
+ * (e.g. from derived classes that override the textview's
+ * #GtkWidget::key-press-event handler).
+ *
+ * Since: 3.20
+ */
+void
+gtk_text_view_reset_cursor_blink (GtkTextView *text_view)
+{
+  g_return_if_fail (GTK_IS_TEXT_VIEW (text_view));
+
+  gtk_text_view_reset_blink_time (text_view);
+  gtk_text_view_pend_cursor_blink (text_view);
+}
 
 /**
  * gtk_text_view_place_cursor_onscreen:
index 203fcfba1ffaedf50286859e9afe2e61e49ecb3b..432e7b786cfc174d8121e493e3cbfbc1bd3249e6 100644 (file)
@@ -246,6 +246,9 @@ void           gtk_text_view_set_cursor_visible    (GtkTextView   *text_view,
 GDK_AVAILABLE_IN_ALL
 gboolean       gtk_text_view_get_cursor_visible    (GtkTextView   *text_view);
 
+GDK_AVAILABLE_IN_3_20
+void           gtk_text_view_reset_cursor_blink    (GtkTextView   *text_view);
+
 GDK_AVAILABLE_IN_ALL
 void           gtk_text_view_get_cursor_locations  (GtkTextView       *text_view,
                                                     const GtkTextIter *iter,